﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using HZ.MBSM.DBUtility;

public partial class Supervise_TraHospitalQualityLevels : System.Web.UI.Page
{
    public string _strEndDate, _strStartDate, _AreaId = "", _strUserType = "", _strAccountId = "", Display = "block";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (HZ.MBSM.BLL.Login.CheckAssert(this.UseAccountType))
        {
            HZ.MBSM.Model.Account _Account = (HZ.MBSM.Model.Account)Session["Account"];
            if (_Account != null)
            {
                _AreaId = SysFun.ToTrim(_Account.AreaId);
                _strUserType = SysFun.ToTrim(_Account.Type);
                _strAccountId = SysFun.ToTrim(_Account.AccountId);
                //如果当前使用人是配送企业
                if (_strUserType == "2")
                {
                    _AreaId = "530000";
                }

            }
            if (_strUserType == "3")
            {
                //如果当前用户是医院，那么就把地区隐藏
                labArea.Visible = false;
                Label1.Visible = false;
                Display = "none";
            }
            else
            {
                ////如果是监督机构或中介就根据其所在的地区来选择
                ////如果是省一级的监督机构就可以看到整个云南省的信息,如果是某个市的监督机构就只能看到本市的信息
                //System.Text.StringBuilder strHtml = new System.Text.StringBuilder();
                //string _strAreaNameForm, _strAreaIdForm;
                //_strAreaNameForm = SysFun.ToTrim(Request.Form["txtAreaName"]);
                //_strAreaIdForm = SysFun.ToTrim(Request.Form["txtAreaId"]);
                //if (_strAreaNameForm != "" && _strAreaIdForm != "")
                //{
                //    strHtml.Append("<input type='text' name='txtAreaName' value ='" + _strAreaNameForm + "' id='Text1' language='javascript' onclick='return Text1_onclick()'  InvertedComma='所属地区' readonly />");
                //    strHtml.Append("<input type='text' name='txtAreaId'  value ='" + _strAreaIdForm + "' style='display: none' />");
                //}
                //else
                //{
                //    strHtml.Append("<input type='text' name='txtAreaName' id='Text1' language='javascript' onclick='return Text1_onclick()'  InvertedComma='所属地区' readonly />");
                //    strHtml.Append("<input type='text' name='txtAreaId' style='display: none' />");
                //}
                //if (_AreaId != "")
                //{
                //    strHtml.Append("<a href='javascript:AreaSelect(" + _AreaId + ")'>选择地区</a>");
                //}
                //labArea.Text = strHtml.ToString();
                //labArea.Visible = true;
                //Label1.Visible = true;
                //Display = "block";
                //如果是监督机构或中介就根据其所在的地区来选择
                //如果是省一级的监督机构就可以看到整个云南省的信息,如果是某个市的监督机构就只能看到本市的信息
                System.Text.StringBuilder strHtml = new System.Text.StringBuilder();
                string _strAreaNameForm, _strAreaIdForm;
                _strAreaNameForm =SysFun.IsSQL( SysFun.ToTrim(Request.Form["txtAreaName"]));
                _strAreaIdForm = SysFun.IsSQL(SysFun.ToTrim(Request.Form["txtAreaId"]));
                if (_strAreaNameForm != "" && _strAreaIdForm != "")
                {

                    strHtml.Append("<input type='text' name='txtAreaName' value ='" + _strAreaNameForm + "' id='Text1' language='javascript' onclick='return Text1_onclick()'  InvertedComma='所属地区' readonly />");
                    strHtml.Append("<input type='text' name='txtAreaId'  value ='" + _strAreaIdForm + "' style='display: none' />");
                }
                else
                {
                    string strTempAreaId = SysFun.ToTrim(Request.QueryString["AreaId"]);
                    if (strTempAreaId != "")
                    {
                        Db Db1 = new Db();
                        System.Data.IDataReader dr;
                        string strSql = "select * from area where areaid = " + strTempAreaId;
                        dr = Db1.DataReader(strSql);
                        while (dr.Read())
                        {
                            strHtml.Append("<input type='text' name='txtAreaName' value ='" + dr["AreaName"].ToString() + "' id='Text1' language='javascript' onclick='return Text1_onclick()'  InvertedComma='所属地区' readonly />");
                            strHtml.Append("<input type='text' name='txtAreaId'  value ='" + dr["AreaId"].ToString() + "' style='display: none' />");

                        }
                        dr.Close();
                        dr.Dispose();
                        Db1.Close();
                    }
                    else
                    {
                        strHtml.Append("<input type='text' name='txtAreaName' id='Text1' language='javascript' onclick='return Text1_onclick()'  InvertedComma='所属地区' readonly />");
                        strHtml.Append("<input type='text' name='txtAreaId' style='display: none' />");
                    }
                }
                if (_AreaId != "")
                {
                    strHtml.Append("<a href='javascript:AreaSelect(" + _AreaId + ")'>选择地区</a>");
                }
                labArea.Text = strHtml.ToString();
                labArea.Visible = true;
                Label1.Visible = true;
            }
            if (!IsPostBack)
            {
                //第一次调用时 得到传过来的AreaId
                string strTempAreaid = SysFun.ToTrim(Request.QueryString["AreaId"]);
                if (strTempAreaid != "")
                {
                    _AreaId = strTempAreaid;
                }

                //<!--初始化统计时间
                int Year, Month, Day, DMonth, Year1;
                Year = DateTime.Now.Year;
                Year1 = Year;
                DMonth = DateTime.Now.Month;
                Month = DMonth - 1;
                if (Month == 0)
                {
                    Year1 -= 1;
                    Month = 12;
                }

                Day = DateTime.Now.Day;
                txtStartDate.Text = Year1.ToString() + "-" + Month.ToString() + "-01";
                txtEndDate.Text = Year.ToString() + "-" + DMonth.ToString() + "-01";

                _strEndDate = SysFun.ToTrim(Request.QueryString["EndDate"]);
                _strStartDate = SysFun.ToTrim(Request.QueryString["StartDate"]);
                if (_strEndDate != "")
                {
                    txtEndDate.Text = _strEndDate;
                }
                if (_strStartDate != "")
                {
                    txtStartDate.Text = _strStartDate;
                }
                //初始化统计时间-->

                //<!--初始化医院类型
                lstDistinction.Items.Add("全部");
                lstDistinction.Items.Add("三甲");
                lstDistinction.Items.Add("三乙");
                lstDistinction.Items.Add("二甲");
                lstDistinction.Items.Add("二乙");
                lstDistinction.Items.Add("一甲");
                lstDistinction.Items.Add("一乙");
                string _strHosptialType = SysFun.ToTrim(Request.QueryString["Distinction"]);
                if (_strHosptialType != "")
                {
                    lstDistinction.SelectedValue = _strHosptialType;
                }

                //初始化医院类型-->

            }

            showGridView();

        }
    }
    protected void Button5_Click(object sender, EventArgs e)
    {

    }

    /// <summary>
    /// 数据绑定
    /// </summary>
    public void showGridView()
    {

        string strConditions = fctConditions();
        Db db = new Db();
        DbPage dbPage = new DbPage(db);
        dbPage.Table = "tra_GoodsId";                                               //要查询的表明
        dbPage.SelectFieldGroup = "AccountId_YY,HospitalName,UserCode_YY,distinction,IsOldLeader";
        dbPage.Key = "AccountId_YY";                                               //表的主键    
        dbPage.Where = strConditions;                                           //查询条件    
        dbPage.SelectField = "AccountId_YY,HospitalName,UserCode_YY,case distinction when '0' then '三甲' when '1' then '三乙' when '2' then '二甲' when '3' then '二乙' when '4' then '一甲' when '5' then '一乙' end as distinction,case IsOldLeader when '1' then '是'  when '0' then '否' end IsOldLeader,sum(case QualityLevels when '1' then inflownum*TradePrice else 0 end) as zlsum,sum(case QualityLevels when '2' then inflownum*TradePrice else 0 end) as yysum,sum(case QualityLevels when '3' then inflownum*TradePrice else 0 end) as dddjsum,sum(case QualityLevels when '4' then inflownum*TradePrice else 0 end) as yzyjsum,sum(case QualityLevels when '5' then inflownum*TradePrice else 0 end) as gmpsum,sum(case   when QualityLevels<5 then inflownum*TradePrice else 0 end)/sum(inflownum*TradePrice)*100 as fgmpbl,sum(case   when QualityLevels=5 then inflownum*TradePrice else 0 end)/sum(inflownum*TradePrice)*100 as gmpbl,sum(inflownum*TradePrice) as DHJE";//要显示的字段
        dbPage.PageIndex = SysFun.ToInt(Request["CurrentlyPageIndex"]);          //要显示第几页   
        if (Request.Form["subToExcel"] == "导出到Excel")
        {
            dbPage.PageSize = 1;
        }
        else
        {
            dbPage.PageSize = 30;                                                    //没有显示记录条数   
        }
        dbPage.OrderBy = "DHJE,AccountId_YY";                  //排序字段
        dbPage.OrderByIsDesc = true;
        dbPage.DGJE = "convert(numeric(20,2),sum(GoodsNum*TradePrice)) as DGJE";
        dbPage.DHJE = "convert(numeric(20,2),sum(inflownum*TradePrice)) as DHJE";
        System.Data.IDataReader dr = dbPage.ExecuteReaderGroup(60);
        GridView1.DataSource = dr;
        GridView1.DataBind();
        dr.Close();
        dr.Dispose();
        dbPage.Db.Close();
        db.Close();
        this.DbPageFlip1.DbPage = dbPage;//将数据传给控键
        if (Request.Form["subToExcel"] == "导出到Excel")
        {
            SysFun.WriteToExcel(GridView1, this.Page, "按药品比例查询.xls");
        }



    }
    /// <summary>
    /// 生成查询条件
    /// </summary>
    /// <returns></returns>
    public string fctConditions()
    {
        string _strTemp = " DealStatus=2 and", CompanyName = "", _UserCode, _strAreaIdForm, _strDistinction;
        //时间范围
        _strEndDate = txtEndDate.Text.ToString();
        _strStartDate = txtStartDate.Text.ToString();
        if (_strEndDate != "" && _strStartDate != "")
        {
            _strTemp += " hospitalinflowdate >='" + _strStartDate + "' and hospitalinflowdate <='" + _strEndDate + "' and";
        }
        //医院级别
        _strDistinction = lstDistinction.Text;
        switch (_strDistinction)
        {
            case "全部":
                _strDistinction = "全部";
                break;
            case "三甲":
                _strDistinction = "0";
                break;
            case "三乙":
                _strDistinction = "1";
                break;
            case "二甲":
                _strDistinction = "2";
                break;
            case "二乙":
                _strDistinction = "3";
                break;
            case "一甲":
                _strDistinction = "4";
                break;
            case "一乙":
                _strDistinction = "5";
                break;
        }
        if (_strDistinction != "全部")
        {
            _strTemp += " Distinction =" + _strDistinction + " and";
        }

        //如果当前使用人是配送企业
        if (_strUserType == "2")
        {
            _strTemp += " AccountId_PS=" + _strAccountId + " and";
        }

        //根据登录人和地区确定医院范围
        if (_strUserType == "3")
        {
            _strTemp += "  AccountId_YY=" + _strAccountId + " and";
        }
        else
        {
            //医院编码
            _UserCode = txtUserCode.Text.ToString();
            if (_UserCode != "")
            {
                _strTemp += " UserCode_YY like '%" + _UserCode + "%' and";
            }

            //医院名称
            CompanyName = txtAttorneyName.Text.ToString();
            if (CompanyName != "")
            {
                _strTemp += " hospitalName like '%" + CompanyName + "%' and";
            }
            _strAreaIdForm = SysFun.ToTrim(Request.Form["txtAreaId"]);
            //if (_strAreaIdForm != "" && _strAreaIdForm != "530000")
            //{
            //    _AreaId = _strAreaIdForm;
            //    _strTemp += "  AccountId_YY in (select Accountid from hospital where areaid=" + _strAreaIdForm + ") and";               
            //}
            //else if (_AreaId != "" && _AreaId != "530000")
            //{
            //    _strTemp += "  AccountId_YY in (select Accountid from hospital where areaid=" + _AreaId + ") and";
            //}
            if (_strAreaIdForm != "" && _strAreaIdForm != "530000")
            {
                _AreaId = _strAreaIdForm;
            }
            _strTemp += SysFun.AreaIdWhere(_AreaId);
        }
        if (_strTemp != "")
        {
            _strTemp = "  " + _strTemp.Substring(0, _strTemp.Length - 3);
        }
        return _strTemp;
    }
    protected void ToEcxel()//导出
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        // 添加头信息，为"文件下载/另存为"对话框指定默认文件名 
        Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("按医院查询.xls"));
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        Response.ContentEncoding = System.Text.Encoding.UTF7;  //解决将gridview导出成excel时出现乱码  
        Response.ContentType = "application/ms-excel";
        this.EnableViewState = false;
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        this.GridView1.RenderControl(oHtmlTextWriter);

        // 把文件流发送到客户端 
        Response.Write(oStringWriter.ToString());
        // 停止页面的执行

        Response.End();


    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        //OverRide　为了使导出成Excel可行！
    }
    #region TraDes 成员

    public string Name
    {
        get { return "按用药比例查询"; }
    }

    public string Describe
    {
        get { return ""; }
    }

    public string ParentName
    {
        get { return "交易查询"; }
    }

    public System.Collections.Generic.List<HZ.MBSM.DAL.AccountType> UseAccountType
    {
        get
        {
            System.Collections.Generic.List<HZ.MBSM.DAL.AccountType> _AccountType = new System.Collections.Generic.List<HZ.MBSM.DAL.AccountType>();
            _AccountType.Add(HZ.MBSM.DAL.AccountType.enumAttorney);
            _AccountType.Add(HZ.MBSM.DAL.AccountType.enumSupervise);
            return _AccountType;
        }
    }
    #endregion
   
}
